from datetime import timedelta
import redis

class Config:
    JSON_AS_ASCII = False
    # 取消将JSON中的中文转为ASCII

    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/fireferry'
    # 配置连接数据库，数据库类型+所用的数据库驱动://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 如果设置成 True (默认情况)，Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存，如果不必要的可以禁用它
    SQLALCHEMY_ECHO = True
    # 调试设置为true

    # SQLALCHEMY_BINDS = 
    # 一个将会绑定多种数据库的字典。 更多详细信息请看官文 绑定多种数据库
    # SQLALCHEMY_POOL_SIZE = 
    # 数据库池的大小，默认值为5
    # SQLALCHEMY_POOL_TIMEOUT = 
    # 连接超时时间
    # SQLALCHEMY_POOL_RECYCLE = 
    # 自动回收连接的秒数
    # SQLALCHEMY_MAX_OVERFLOW = 
    # 控制在连接池达到最大值后可以创建的连接数。当这些额外的 连接回收到连接池后将会被断开和抛弃

    # Session的配置
    SECRET_KEY = 'dsfyuixcvb09243hfd7jbk'
    PERMANENT_SESSION_LIFETIME = timedelta(days=30)
    SESSION_PERMANENT = True
    SESSION_TYPE = 'redis'
    SESSION_REDIS = redis.Redis(host='127.0.0.1', port='6379')
    # SESSION_REDIS = redis.Redis(host='127.0.0.1', port='6379', password='123123')

class DevelopmentConfig(Config):
    ENV = "development"
    # 声明环境,包括development（开发环境) 和 production（生产环境)
    DEBUG = True
    # 开发环境下DEBUG为true

class ProductionConfig(Config):
    ENV = "production"
    DEBUG = False

# 缓存配置
cache_config = {
    'CACHE_TYPE':'redis',
    'CACHE_REDIS_HOST':'127.0.0.1',
    'CACHE_REDIS_PORT':6379,
}